package com.itqf.service;

import com.itqf.bean.DtsAdmin;
import com.itqf.dto.CommonsDto;
import org.springframework.context.ApplicationContext;

import java.util.Date;
import java.util.Map;

/**
 * projectName: gp_manage
 *
 * @author: 赵伟风
 * time: 2021/8/17 10:27
 * description:管理员业务接口
 */
public interface DtsAdminService {

    /**
     * 根据用户名，查询用户信息
     * @param username
     * @return
     */
    DtsAdmin findAdminByUserName(String username);

    /**
     * 更新登录时间和ip地址的方法
     * @param id
     * @param ip
     * @param time
     * @return
     */
    int updateAdminById(Integer id, String ip, Date time);

    /**
     * 查询首页显示用户信息
     *     注意： 权限需要特殊格式，并且验证用户拥有并且已经完成的接口！
     * @param dtsAdmin
     * @param applicationContext
     * @return
     */
    Map<String, Object> findAdminInfo(DtsAdmin dtsAdmin, ApplicationContext applicationContext);


    /**
     * 根据分页查询用户数据！注意分页查询！
     * @param commonsDto
     * @return
     */
    Map<String, Object> findAdminByPage(CommonsDto commonsDto);

    /**
     * 业务方法,进行数据插入
     *    注意账号是否已经存在!
     *    注意密码长度问题!
     * @param dtsAdmin
     * @return
     */
    Map<String, Object> insertDtsAdmin(DtsAdmin dtsAdmin);


    /**
     * 根据主键修改!
     * @param dtsAdmin
     * @return
     */
    Object updateAdminByPrimaryKey(DtsAdmin dtsAdmin);

    /**
     * 删除用户
     * @param dtsAdmin
     * @param currentUser
     * @return
     */
    Object deleteAdminById(DtsAdmin dtsAdmin, DtsAdmin currentUser);

    /**
     * 根绝角色查询是否用户在使用
     * @param id
     * @return
     */
    boolean findAdminUseRoleId(Integer id);
}
